package cn.tedu.collection;

import java.util.LinkedList;

/*本类用于测试LinkedList的相关测试*/
public class TestLinkedList {
    public static void main(String[] args) {
        //1.创建集合对象
        LinkedList <String> list = new LinkedList<>();
        //2.
        list.add("孙悟空");
        list.add("猪八戒");
        list.add("唐三藏");
        list.add("沙师弟");
        list.add("白龙马");
        System.out.println(list);
        //3.1测试从Collection继承过来的共性方法
        System.out.println(list.get(2));
        System.out.println(list.set(2,"唐三葬"));
        System.out.println(list);
        list.add(2,"嫦娥");
        System.out.println(list);
        //3.2测试特有方法
        list.addFirst("蜘蛛精");//添加首元素
        list.addLast("白骨精");//添加尾元素
        System.out.println(list);
        System.out.println(list.getFirst());//获取首元素
        System.out.println(list.getLast());//获取尾元素
        System.out.println(list.removeFirst());//移出首元素
        System.out.println(list.removeLast());//移出尾元素
        System.out.println(list);
        //4.其他测试
        //4.1创建集合对象
        LinkedList<String> list2 = new LinkedList<String>();
        //4.2添加元素
        list2.add("完美世界");
        list2.add("遮天");
        list2.add("吞噬星空");
        list2.add("霸道总裁爱上我");
        System.out.println(list2);
        System.out.println(list2.element());//获取但不移出链表中的首元素
        /*别名：查询系统*/
        System.out.println(list2.peek());//获取但不移出链表中的首元素
        System.out.println(list2.peekFirst());//获取但不移出链表中的首元素
        System.out.println(list2.peekLast());//获取但不移出链表中的尾元素
        /*别名：新增系列*/
        System.out.println(list2.offer("斗罗大陆"));//把指定元素添加到链表的末尾
        System.out.println(list2.offerFirst("斗破苍穹"));//把指定元素添加到链表的首部
        System.out.println(list2.offerLast("雪中悍刀行"));//把指定元素添加到链表的末尾
        System.out.println(list2);
        /*别名：移出系列*/
        System.out.println(list2.poll());//获取并移出链表中的首元素
        System.out.println(list2.pollFirst());//获取并移出链表中的首元素
        System.out.println(list2.pollLast());//获取并移出链表中的尾元素
        System.out.println(list2);
    }
}
